/*
 * Copyright (c) 2024 Huawei Device Co., Ltd.
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *     http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */
#ifndef ENUM_LIST_H
#define ENUM_LIST_H
#include "native_buffer.h"

int32_t NativeBuffer_ColorSpace[] = {
    OH_COLORSPACE_NONE,
    OH_COLORSPACE_BT601_EBU_FULL,
    OH_COLORSPACE_BT601_SMPTE_C_FULL,
    OH_COLORSPACE_BT709_FULL,
    OH_COLORSPACE_BT2020_HLG_FULL,
    OH_COLORSPACE_BT2020_PQ_FULL,
    OH_COLORSPACE_BT601_EBU_LIMIT,
    OH_COLORSPACE_BT601_SMPTE_C_LIMIT,
    OH_COLORSPACE_BT709_LIMIT,
    OH_COLORSPACE_BT2020_HLG_LIMIT,
    OH_COLORSPACE_BT2020_PQ_LIMIT,
    OH_COLORSPACE_SRGB_FULL,
    OH_COLORSPACE_P3_FULL,
    OH_COLORSPACE_P3_HLG_FULL,
    OH_COLORSPACE_P3_PQ_FULL,
    OH_COLORSPACE_ADOBERGB_FULL,
    OH_COLORSPACE_SRGB_LIMIT,
    OH_COLORSPACE_P3_LIMIT,
    OH_COLORSPACE_P3_HLG_LIMIT,
    OH_COLORSPACE_P3_PQ_LIMIT,
    OH_COLORSPACE_ADOBERGB_LIMIT,
    OH_COLORSPACE_LINEAR_SRGB,
    OH_COLORSPACE_LINEAR_BT709,
    OH_COLORSPACE_LINEAR_P3,
    OH_COLORSPACE_LINEAR_BT2020,
    OH_COLORSPACE_DISPLAY_SRGB,
    OH_COLORSPACE_DISPLAY_P3_SRGB,
    OH_COLORSPACE_DISPLAY_P3_HLG,
    OH_COLORSPACE_DISPLAY_P3_PQ,
    OH_COLORSPACE_DISPLAY_BT2020_SRGB,
    OH_COLORSPACE_DISPLAY_BT2020_HLG,
    OH_COLORSPACE_DISPLAY_BT2020_PQ
};

int32_t NativeBuffer_Format[] = {
    NATIVEBUFFER_PIXEL_FMT_CLUT8,
    NATIVEBUFFER_PIXEL_FMT_CLUT1,
    NATIVEBUFFER_PIXEL_FMT_CLUT4,
    NATIVEBUFFER_PIXEL_FMT_RGB_565,
    NATIVEBUFFER_PIXEL_FMT_RGBA_5658,
    NATIVEBUFFER_PIXEL_FMT_RGBX_4444,
    NATIVEBUFFER_PIXEL_FMT_RGBA_4444,
    NATIVEBUFFER_PIXEL_FMT_RGB_444,
    NATIVEBUFFER_PIXEL_FMT_RGBX_5551,
    NATIVEBUFFER_PIXEL_FMT_RGBA_5551,
    NATIVEBUFFER_PIXEL_FMT_RGB_555,
    NATIVEBUFFER_PIXEL_FMT_RGBX_8888,
    NATIVEBUFFER_PIXEL_FMT_RGBA_8888,
    NATIVEBUFFER_PIXEL_FMT_RGB_888,
    NATIVEBUFFER_PIXEL_FMT_BGR_565,
    NATIVEBUFFER_PIXEL_FMT_BGRX_4444,
    NATIVEBUFFER_PIXEL_FMT_BGRA_4444,
    NATIVEBUFFER_PIXEL_FMT_BGRX_5551,
    NATIVEBUFFER_PIXEL_FMT_BGRA_5551,
    NATIVEBUFFER_PIXEL_FMT_BGRX_8888,
    NATIVEBUFFER_PIXEL_FMT_BGRA_8888,
    NATIVEBUFFER_PIXEL_FMT_YUV_422_I,
    NATIVEBUFFER_PIXEL_FMT_YCBCR_422_SP,
    NATIVEBUFFER_PIXEL_FMT_YCRCB_422_SP,
    NATIVEBUFFER_PIXEL_FMT_YCBCR_420_SP,
    NATIVEBUFFER_PIXEL_FMT_YCRCB_420_SP,
    NATIVEBUFFER_PIXEL_FMT_YCBCR_422_P,
    NATIVEBUFFER_PIXEL_FMT_YCRCB_422_P,
    NATIVEBUFFER_PIXEL_FMT_YCBCR_420_P,
    NATIVEBUFFER_PIXEL_FMT_YCRCB_420_P,
    NATIVEBUFFER_PIXEL_FMT_YUYV_422_PKG,
    NATIVEBUFFER_PIXEL_FMT_UYVY_422_PKG,
    NATIVEBUFFER_PIXEL_FMT_YVYU_422_PKG,
    NATIVEBUFFER_PIXEL_FMT_VYUY_422_PKG,
    NATIVEBUFFER_PIXEL_FMT_RGBA_1010102,
    NATIVEBUFFER_PIXEL_FMT_YCBCR_P010,
    NATIVEBUFFER_PIXEL_FMT_YCRCB_P010,
    NATIVEBUFFER_PIXEL_FMT_RAW10,
    NATIVEBUFFER_PIXEL_FMT_VENDER_MASK,
    NATIVEBUFFER_PIXEL_FMT_BUTT
};

int32_t NativeBuffer_MetadataType[] = {
    OH_VIDEO_HDR_HLG,
    OH_VIDEO_HDR_HDR10,
    OH_VIDEO_HDR_VIVID,
    OH_VIDEO_NONE
};

std::unordered_map<int32_t, std::string> metadataString = {
    {OH_VIDEO_HDR_HLG, "HDR_HLG"},
    {OH_VIDEO_HDR_HDR10, "HDR_HDR10"},
    {OH_VIDEO_HDR_VIVID, "HDR_VIVID"},
    {OH_VIDEO_NONE, "NONE"}
};

std::unordered_map<int32_t, std::string> formatString = {
    {NATIVEBUFFER_PIXEL_FMT_CLUT8, "CLUT8"},
    {NATIVEBUFFER_PIXEL_FMT_CLUT1, "CLUT1"},
    {NATIVEBUFFER_PIXEL_FMT_CLUT4, "CLUT4"},
    {NATIVEBUFFER_PIXEL_FMT_RGB_565, "RGB_565"},
    {NATIVEBUFFER_PIXEL_FMT_RGBA_5658, "RGBA_5658"},
    {NATIVEBUFFER_PIXEL_FMT_RGBX_4444, "RGBX_4444"},
    {NATIVEBUFFER_PIXEL_FMT_RGBA_4444, "RGBA_4444"},
    {NATIVEBUFFER_PIXEL_FMT_RGB_444, "RGB_444"},
    {NATIVEBUFFER_PIXEL_FMT_RGBX_5551, "RGBX_5551"},
    {NATIVEBUFFER_PIXEL_FMT_RGBA_5551, "RGBA_5551"},
    {NATIVEBUFFER_PIXEL_FMT_RGB_555, "RGB_555"},
    {NATIVEBUFFER_PIXEL_FMT_RGBX_8888, "RGBX_8888"},
    {NATIVEBUFFER_PIXEL_FMT_RGBA_8888, "RGBA_8888"},
    {NATIVEBUFFER_PIXEL_FMT_RGB_888, "RGB_888"},
    {NATIVEBUFFER_PIXEL_FMT_BGR_565, "BGR_565"},
    {NATIVEBUFFER_PIXEL_FMT_BGRX_4444, "BGRX_4444"},
    {NATIVEBUFFER_PIXEL_FMT_BGRA_4444, "BGRA_4444"},
    {NATIVEBUFFER_PIXEL_FMT_BGRX_5551, "BGRX_5551"},
    {NATIVEBUFFER_PIXEL_FMT_BGRA_5551, "BGRA_5551"},
    {NATIVEBUFFER_PIXEL_FMT_BGRX_8888, "BGRX_8888"},
    {NATIVEBUFFER_PIXEL_FMT_BGRA_8888, "BGRA_8888"},
    {NATIVEBUFFER_PIXEL_FMT_YUV_422_I, "YUV_422_I"},
    {NATIVEBUFFER_PIXEL_FMT_YCBCR_422_SP, "YCBCR_422_SP"},
    {NATIVEBUFFER_PIXEL_FMT_YCRCB_422_SP, "YCRCB_422_SP"},
    {NATIVEBUFFER_PIXEL_FMT_YCBCR_420_SP, "YCBCR_420_SP"},
    {NATIVEBUFFER_PIXEL_FMT_YCRCB_420_SP, "YCRCB_420_SP"},
    {NATIVEBUFFER_PIXEL_FMT_YCBCR_422_P, "YCBCR_422_P"},
    {NATIVEBUFFER_PIXEL_FMT_YCRCB_422_P, "YCRCB_422_P"},
    {NATIVEBUFFER_PIXEL_FMT_YCBCR_420_P, "YCBCR_420_P"},
    {NATIVEBUFFER_PIXEL_FMT_YCRCB_420_P, "YCRCB_420_P"},
    {NATIVEBUFFER_PIXEL_FMT_YUYV_422_PKG, "YUYV_422_PKG"},
    {NATIVEBUFFER_PIXEL_FMT_UYVY_422_PKG, "UYVY_422_PKG"},
    {NATIVEBUFFER_PIXEL_FMT_YVYU_422_PKG, "YVYU_422_PKG"},
    {NATIVEBUFFER_PIXEL_FMT_VYUY_422_PKG, "VYUY_422_PKG"},
    {NATIVEBUFFER_PIXEL_FMT_RGBA_1010102, "RGBA_1010102"},
    {NATIVEBUFFER_PIXEL_FMT_YCBCR_P010, "YCBCR_P010"},
    {NATIVEBUFFER_PIXEL_FMT_YCRCB_P010, "YCRCB_P010"},
    {NATIVEBUFFER_PIXEL_FMT_RAW10, "RAW10"},
    {NATIVEBUFFER_PIXEL_FMT_VENDER_MASK, "VENDER_MASK"},
    {NATIVEBUFFER_PIXEL_FMT_BUTT, "BUTT"}
};

std::unordered_map<int32_t, std::string> colorString = {
    {OH_COLORSPACE_NONE, "NONE"},
    {OH_COLORSPACE_BT601_EBU_FULL, "BT601_EBU_FULL"},
    {OH_COLORSPACE_BT601_SMPTE_C_FULL, "BT601_SMPTC_FULL"},
    {OH_COLORSPACE_BT709_FULL, "BT709_FULL"},
    {OH_COLORSPACE_BT2020_HLG_FULL, "BT2020_HLG_FULL"},
    {OH_COLORSPACE_BT2020_PQ_FULL, "BT2020_PQ_FULL"},
    {OH_COLORSPACE_BT601_EBU_LIMIT, "BT601_EBU_LIMIT"},
    {OH_COLORSPACE_BT601_SMPTE_C_LIMIT, "BT601_SMPTC_LIMIT"},
    {OH_COLORSPACE_BT709_LIMIT, "BT709_LIMIT"},
    {OH_COLORSPACE_BT2020_HLG_LIMIT, "BT2020_HLG_LIMIT"},
    {OH_COLORSPACE_BT2020_PQ_LIMIT, "BT2020_PQ_LIMIT"},
    {OH_COLORSPACE_SRGB_FULL, "SRGB_FULL"},
    {OH_COLORSPACE_P3_FULL, "P3_FULL"},
    {OH_COLORSPACE_P3_HLG_FULL, "P3_HLG_FULL"},
    {OH_COLORSPACE_P3_PQ_FULL, "P3_PQ_FULL"},
    {OH_COLORSPACE_ADOBERGB_FULL, "ADOBERGB_FULL"},
    {OH_COLORSPACE_SRGB_LIMIT, "SRGB_LIMIT"},
    {OH_COLORSPACE_P3_LIMIT, "P3_LIMIT"},
    {OH_COLORSPACE_P3_HLG_LIMIT, "P3_HLG_LIMIT"},
    {OH_COLORSPACE_P3_PQ_LIMIT, "P3_PQ_LIMIT"},
    {OH_COLORSPACE_ADOBERGB_LIMIT, "ADOBERGB_LIMIT"},
    {OH_COLORSPACE_LINEAR_SRGB, "LINEAR_SRGB"},
    {OH_COLORSPACE_LINEAR_BT709, "LINEAR_BT709"},
    {OH_COLORSPACE_LINEAR_P3, "LINEAR_P3"},
    {OH_COLORSPACE_LINEAR_BT2020, "LINEAR_BT2020"},
    {OH_COLORSPACE_DISPLAY_SRGB, "DISPLAY_SRGB"},
    {OH_COLORSPACE_DISPLAY_P3_SRGB, "DISPLAY_P3_SRGB"},
    {OH_COLORSPACE_DISPLAY_P3_HLG, "DISPLAY_P3_HLG"},
    {OH_COLORSPACE_DISPLAY_P3_PQ, "DISPLAY_P3_PQ"},
    {OH_COLORSPACE_DISPLAY_BT2020_SRGB, "DISPLAY_BT2020_SRGB"},
    {OH_COLORSPACE_DISPLAY_BT2020_HLG, "DISPLAY_BT2020_HLG"},
    {OH_COLORSPACE_DISPLAY_BT2020_PQ, "DISPLAY_BT2020_PQ"}
};

#endif